package ar.com.gastos;

import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Collection;
import java.util.LinkedList;

import objetos.Categoria;

import android.content.Context;
import android.widget.Toast;

public class Persistencia {

	// Save settings
	// archivo es un string punto dat que dice como se va a llamar el archivo
	// donde se van a guardar los datos
	public void WriteSettings(Context context, Collection<Object> data,
			String archivo) {

		FileOutputStream fOut = null;

		ObjectOutputStream oos = null;

		try {

			fOut = context.openFileOutput(archivo, Context.MODE_PRIVATE);
			oos = new ObjectOutputStream(fOut);

			for (Object object : data) {
				oos.writeObject(object);

			}

			oos.flush();



		}

		catch (Exception e) {

			

			Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show();
			
			
		}

		finally {

			try {

				oos.close();

				fOut.close();

			} catch (IOException e) {

				e.printStackTrace();
			
			}
			
		}

	}

	// Read settings

	public Collection<Object> ReadSettings(Context context, String archivo) throws FileNotFoundException  {

		FileInputStream fIn = null;

		ObjectInputStream isr = null;

		Object temp = null;
		Collection<Object> data = new LinkedList<Object>();

		try {

			fIn = context.openFileInput(archivo);

			isr = new ObjectInputStream(fIn);

			

			while ((temp = isr.readObject()) != null) {

				data.add(temp);

			}

			

		} catch (EOFException e) {
			return data;
		} catch (Exception e) {

			e.printStackTrace();
			
			
		}

		finally {

			try {

				isr.close();

				fIn.close();

			} catch (IOException e) {

				e.printStackTrace();
				return null;

			}

		}

		return data;

	}

}